﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ZY.EntityFrameWork.Core.Model.Dto;

namespace ZY.EntityFrameWork.Caller.Facade
{
    public interface IArvOpService
    {
        #region 位置信息

        int AddNewLocation(ArvLocationDto dto);

        int AddNewLocations(List<ArvLocationDto> dtos);

        #endregion

        #region 入库相关

        /// <summary>
        /// 查找在库档案
        /// </summary>
        /// <returns></returns>
        List<ArchiveInfoDto> GetArvInLib();

        /// <summary>
        /// 档案入库
        /// </summary>
        /// <param name="arv"></param>
        int InputToLib(ArchiveInfoDto arv);

        /// <summary>
        /// 多条档案同时入库
        /// </summary>
        /// <param name="arvs"></param>
        /// <returns></returns>
        int InputToLib(List<ArchiveInfoDto> arvs);

        /// <summary>
        /// 单个档案放入柜中(后期看情况第二个参数改成档案盒编号)
        /// </summary>
        /// <param name="dto"></param>
        /// <param name="locDto"></param>
        /// <returns></returns>
        int InputToCab(ArchiveInfoDto dto, ArvLocationDto locDto);

        /// <summary>
        /// 多个档案放入同一位置
        /// </summary>
        /// <param name="arvs"></param>
        int InputToCab(List<ArchiveInfoDto> arvs, ArvLocationDto locDto);

        #endregion

        #region 借阅相关
        /// <summary>
        /// 查找在柜档案
        /// </summary>
        /// <returns></returns>
        List<ArchiveInfoDto> GetArvInCab();

        int ArvLend(LendInfoDto lendInfo, List<ArchiveInfoDto> arvInfos);

        #endregion

        #region 归还相关
        /// <summary>
        /// 查找被借阅的档案
        /// </summary>
        /// <returns></returns>
        List<ArchiveInfoDto> GetArvLended();

        int ArvReturn(ReturnInfoDto returnInfo, List<ArchiveInfoDto> arvInfos);

        #endregion

        #region 出柜相关

        int ArvOutput(OutCabInfoDto dto, List<ArchiveInfoDto> arvInfos);

        #endregion
    }
}
